CV Capstone Project

Files Submitted

Criteria Meet Specification

Submission Files

CV_project.ipynb --> all required python functions are completed in the main notebook. CV_project.ipynb TODO items should all be completed.

Step 1: Add eye detections to the face detection setup

Criteria Meet Specification

Add eye detections to the current face detection setup.

The submission returns proper code detecting and marking eyes in the given test image.

Step 2: De-noise an image for better face detection

Criteria Meet Specification

De-noise an image for better face detection.

The submission completes de-noising of the given noisy test image with perfect face detections then performed on the cleaned image.

Step 3: Blur and edge detect an image

Criteria Meet Specification

Blur and edge detect a test image.

The submission returns an edge-detected image that has first been blurred, then edge-detected, using the specified parameters.

Step 4: Automatically hide the identity of a person

Criteria Meet Specification

Find and blur the face of an individual in a test image.

The submission should provide code to automatically detect the face of a person in a test image, then blur their face to mask their identity.

Step 5: Specify the network architecture

Criteria Meet Specification

Specify a convolutional network architecture for learning correspondence between input faces and facial keypoints.

The submission successfully provides code to build an appropriate convolutional network.

Step 6: Compile and train the model

Criteria Meet Specification

Compile and train the CNN for facial keypoint detection.

The submission successfully compiles and trains the CNN.

Step 7: Answer a few questions and visualize the loss

Criteria Meet Specification

Answer a few questions about your training and visualize the loss function.

The submission successfully discusses any potential issues with their training, and answers all of the provided questions.

Step 8: Complete a facial keypoints detector

Criteria Meet Specification

Combine OpenCV face detection with your trained CNN facial keypoint detector.

The submission successfully combines OpenCV's pre-processing techniques and face detection with a trained CNN keypoint detector.

Tips to make your project standout:

1. Extend to Video
Many of these computer vision applications can be extended to work on a laptop camera or video file.

2. Add Fun Filters
After detecting facial keypoints, use their locations to overlay fun images on a face (like sunglasses or extra accessories). You can also create filters to automatically blur and edge detect a specific facial region.

3. Improve Face Detection
OpenCV's Haar Cascades aren't perfect, but they work well on faces facing the front of a camera; use a geometric transform and facial keypoints to transform images of faces so that they can be detected better from the side.

4. Track Facial Keypoints
Use optical flow or another tracking algorithm to track how facial keypoints move over time (in video or a series of image frames).

5. Extend to a Mobile App
OpenCV can be used cross-platform on iOS and Android devices. So, you can build this same app to work on those platforms!